package com.example.jrfwcwgl.utils;

import com.alibaba.nacos.client.utils.StringUtils;

import java.math.BigDecimal;

/**
 * bigdecimal相关共通
 *
 * @author fl
 */
public class BigdecimalUtils {

    /**
     * 两个BigDecimal 求和
     *
     * @param //cashableAmount
     * @param //confirmAmount
     * @return
     */
    public static BigDecimal amountSum(BigDecimal obj1, BigDecimal obj2) {
        if (obj1 == null && obj2 == null) return BigDecimal.ZERO;
        if (obj1 == null) {
            return obj2;
        } else if (obj2 == null) {
            return obj1;
        } else {
            return obj1.add(obj2);
        }
    }

    /**
     * 返回obj1 - obj2
     * 减完的结果>=0，小于0的时候，全部按0返回
     *
     * @param obj1
     * @param obj2
     * @return
     */
    public static BigDecimal amountSub(BigDecimal obj1, BigDecimal obj2) {

        if (obj1 == null) {
            return BigDecimal.ZERO;
        }

        if (obj2 == null) {
            return obj1;
        } else {
            BigDecimal subResult = obj1.subtract(obj2);
            if (subResult.compareTo(BigDecimal.ZERO) < 0) {
                return BigDecimal.ZERO;
            } else {
                return subResult;
            }
        }
    }

    /**
     * 比较两个数值是否相等
     */
    public static boolean isEqualInTwoBigdecimal(BigDecimal obj1, BigDecimal obj2) {
        if (obj1 == null && obj2 == null) {
            return true;
        } else if (obj1 != null && obj2 != null) {
            return obj1.compareTo(obj2) == 0;
        } else {
            return false;
        }
    }

    /**
     * str2BigDecimal, 为空的时候返回null
     */
    public static BigDecimal str2BigDecimal(String obj1) {
        if (StringUtils.isBlank(obj1)) {
            return null;
        } else {
            return new BigDecimal(obj1);
        }
    }

}
